package com.idlecode.config.query;


import com.idlecode.config.DbType;

/**
 * Query
 */
public interface AbstractQuery {

    /**
     * 数据库类型
     */
    DbType dbType();

    /**
     * 数据库用户
     */
    String dbNamesSql();

    /**
     * 表信息查询 SQL
     */
    String tableSql(String dataBaseName, String tableName);

    /**
     * 数据库名称
     */
    String dbName();

    /**
     * 表名称
     */
    String tableName();

    /**
     * 表注释
     */
    String tableComment();

    /**
     * 表更新时间
     */
    String tableUpdateTime();

    /**
     * 表字段信息查询 SQL
     */
    String tableFieldsSql(String dataBaseName, String tableName);

    /**
     * 字段名称
     */
    String fieldName();

    /**
     * 字段类型
     */
    String fieldType();

    /**
     * 字段注释
     */
    String fieldComment();

    /**
     * 主键字段
     */
    String fieldKey();

    /**
     * 字段的总位数（不包括小数点后的位数）
     */
    String dataPrecision();

    /**
     * 字段的小数位数
     */
    String dataScale();

    /**
     * 是否可为空
     */
    String isNullable();

    /**
     * 字符列的最大长度
     */
    String characterMaximumLength();
}
